下列代码展示了完整的 Docker 镜像构建、标记和推送到 Docker Hub 的流程,包括单平台和多平台构建。下面我将详细解释每个步骤:
登录 Docker (docker login)
1 | docker login |
- 作用:登录到 Docker Hub 或其他容器注册表
- 执行后会提示输入用户名和密码
- 登录后才能推送镜像到你的 Docker Hub 账户
构建镜像 (docker build)
1 | docker build -t jrebel-license-server:1.0.0 . |
docker build: 构建 Docker 镜像的命令-t jrebel-license-server:1.0.0: 为镜像指定名称和标签jrebel-license-server是镜像名称1.0.0是版本标签
.: 表示使用当前目录下的 Dockerfile 和上下文
标记镜像 (docker tag)
1 | docker tag jrebel-license-server:1.0.0 ieaphy/jrebel-license-server:1.0.0 |
docker tag: 为镜像创建新标签- 格式必须为
<DockerHub用户名>/<镜像名>:<标签> ieaphy/前缀表示这个镜像将推送到 ieaphy 用户的 Docker Hub 仓库
推送镜像 (docker push)
1 | docker push ieaphy/jrebel-license-server:1.0.0 |
docker push: 将本地镜像推送到远程仓库- 这里推送到 Docker Hub 的 ieaphy 用户下的 jrebel-license-server 仓库
- 标签为 1.0.0
多平台构建与推送 (docker buildx)
1 | docker buildx build --platform linux/arm64 -t ieaphy/jrebel-license-server:1.0.0 --push . |
docker buildx: Docker 的扩展构建工具,支持多平台构建--platform linux/arm64: 指定构建目标平台为 ARM64 架构--push: 构建完成后直接推送到仓库,不需要单独执行 push 命令.: 使用当前目录作为构建上下文
完整流程说明
- 首先登录 Docker Hub
- 在本地构建镜像并打上初始标签
- 为镜像添加符合 Docker Hub 规范的标签
- 将镜像推送到 Docker Hub
- 使用 buildx 工具为不同平台(这里是 ARM64)构建并直接推送
注意事项
- 执行这些命令前需要确保:
- Docker 已安装并运行
- 有 Docker Hub 账户(或其他容器注册表账户)
- 对目标仓库有推送权限
- 多平台构建需要:
- 启用 Docker 的 buildx 功能
- 可能需要配置多平台构建环境
- 镜像名称中的用户名(ieaphy)需要替换为你自己的 Docker Hub 用户名